<?php
// error_reporting(E_ALL);
// set_error_handler("error_handler");
// // set_exception_handler("exception_handler");
// // register_shutdown_function("shutdown_function");


function dump($str){
	echo "<pre>";
	var_dump($str);
	echo "</pre>";
}

// function error_handler($errno,$errstr,$errfile,$errline){
// 	dump($errno);dump($errstr);dump($errfile);dump($errline);
// }

// function exception_handler(){

// }

// function shutdown_function(){

// }



// a();

?>

<?php  
  
  

  
//自定义的错误处理方法  
function _error_handler($errno, $errstr ,$errfile, $errline)  
{  

	$file = $errfile;
	$line = $errline;
	$message = $errstr;
    $log = "发生时间:".date("Y-m-d H:i:s")." --- 文件:".$file." --- 第".$line."行出错 --- 详细:".$message."\r\n"; echo $log ; 
}  
  
set_error_handler('_error_handler', E_ALL | E_STRICT);  // 注册错误处理方法来处理所有错误  
  
function _exception_handler(Throwable $e)  
{  
	$file = $e->getFile();
	$line = $e->getLine();
	$message = $e->getMessage();
	$log = "发生时间:".date("Y-m-d H:i:s")." --- 文件:".$file." --- 第".$line."行出错 --- 详细:".$message."\r\n"; echo $log ;

    // if ($e instanceof Error)  
    // {  
    //     echo "catch Error: " . $e->getCode() . '   ' . $e->getMessage() . '<br>';  
    // }  
    // else  
    // {  
    //     echo "catch Exception: " . $e->getCode() . '   ' . $e->getMessage() . '<br>';  
    // }  
}  
  
set_exception_handler('_exception_handler');    // 注册异常处理方法来捕获异常  
 
 echo $a;
  
// echo $foo['bar'];  // 由于数组未定义，会产生一个notice级别的错误  
  
// trigger_error('人为触发一个错误', E_USER_ERROR); //人为触发错误  
  
if (mt_rand(1, 10) > 5)  
{  
    // throw new Exception('This is a exception', 400);  //抛出一个Exception,看是否可以被catch  
}  
else  
{  
    foobar(3, 5);   //调用未定义的方法将会产生一个Error级别的错误  
} 

// fdsafdsafdsa
